package cn.sprouting.tool;

import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.resource.ResourceUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;

import java.util.Arrays;
import java.util.List;

/**
 * 随机生成公司相关信息，比如公司名称、部门名等等
 *
 * @author ：LX（长沙麓谷）
 * @date 创建时间： 2021/11/5 9:46
 */
public class RandomCompanyTool {

    /**
     * 公司行业
     */
    private static List<String> COMPANY_INDUSTRY_LIST = CollUtil.newArrayList("科技", "信息", "商贸", "贸易",
                                                                                    "实业", "文化传播", "文化创意", "工程", "教育", "发展",
                                                                                    "咨询", "设计", "置业", "投资", "传媒", "服务");

    /**
     * 公司后缀
     */
    private static final List<String> COMPANY_SUFFIX_LIST = CollUtil.newArrayList("股份有限公司", "有限责任公司");


    /**
     * 随机生成公司名字
     * @param province 省份名称，如果传，则会添加到前缀中
     * @return
     */
    public static String getCompanyName(String province){
        StringBuilder sb = new StringBuilder();
        if (StrUtil.isNotEmpty(province)){
            sb.append(province);
        }

        int index = RandomUtil.randomInt(2, 7);
        sb.append(RandomTextTool.getChinese(index));
        sb.append(RandomUtil.randomEle(COMPANY_INDUSTRY_LIST));
        sb.append(RandomUtil.randomEle(COMPANY_SUFFIX_LIST));

        return sb.toString();
    }

    /**
     * 随机获取部门名称
     * 注意，部门名称有限，超过最大，只会返回最大值
     * @param num 获取的数量
     * @return
     */
    public static List<String> getDepName(Integer num){
        String commonDepartmentTxt = ResourceUtil.readUtf8Str("commonDepartment.txt");
        String[] array = commonDepartmentTxt.split("\r\n");
        List<String> list = Arrays.asList(array);

        if (num == null || num < 1){
            num = 1;
        }
        if (num > list.size()){
            num = list.size();
        }

        return RandomUtil.randomEleList(list, num);
    }

}
